Personalization involves tailoring aspects of the user experience to meet the needs and preferences of the user. For example, having familiar terms and symbols is key to many users being able to use the web. However, what is familiar for one user may be unfamiliar to another requiring them to learn new symbols. The challenge has been the ability to identify the types of content in a document that should be adapted to the preferred user experience. The introduction of standardized semantics allows web applications to customize the exposure of that content to one that is familiar to individuals based on their needs and preferences. This specification defines standard semantics to enable user driven personalization such as the association of a user-preferred symbols to elements having those semantics. This ensures that users can quickly find familiar icons, such as a help icon, that apply to user interface elements.

Introduction

The goals of this specification include:

This is a proposal to define syntax for adaptable content such as: links, buttons, symbols, help and keyboard. This may be an WAI-ARIA COGA Extension.

Personalization involves tailoring aspects of the user experience to meet the preferences or needs of the user. For example, having familiar terms and symbols is key to being able to use the web. However what is familiar for one user may be new for another requiring them to learn new symbols. Personalization could include loading a set of symbols that is appropriate for the specific user, ensuring that all users find the icons simple and familiar.

Technology holds the promise of being extremely flexible and the design of many systems includes the expectation that users will be able to optimize their interaction experience according to their personal preferences or accessibility requirements (needs).

Why We Need Personalization

We need personalization because:

Some users need extra support. This can include:

For this we need standardized terms and supportive syntax that can be linked to associated symbols, terms, translations and explanations for the individual use via an attribute and personal preferences.

For example, assume an author can make it programanticaly known that a button is used to send an email. At at the user end, the button could be renderer with a symbol, term, and/or tooltips that is understandable for this particular user. It could automatically imply F1 help that explains the send function in simple terms. It could be identified with a keyboard short cut that will always be used for send. In addition it could be identified as important and always rendered, or rendered as a large button.

Working examples of how this could be used in practice, with user preferences, are available at https://github.com/ayelet-seeman/coga.personalisation. This is a project to help personalization for any use - including people with learning and memory issues. It is described more at: https://www.w3.org/WAI/PF/cognitive-a11y-tf/wiki/Easy_Personalization.

This project consists of 4 parts:

  1. JSON files for user setting
  2. Proposal for new syntax: (This document)
  3. An HTML page that uses some of the new syntax: https://github.com/ayelet-seeman/coga.personalisation/tree/ExampleWebPage/
  4. Scripts that a web author can use or include that read the user settings in the JSON files and adapt the page for the user needs: https://github.com/ayelet-seeman/coga.personalisation/tree/Script-Options

This is one example of personalization based on semantics. Others may follow. It is also worth noting that the GPII project is working on making user preferences portable which would also enhance this work.

In another use-case we would like to see interoperable symbol set codes for non-verbal people. Products for people who are non vocal often use symbols to help users communicate. These symbols are in fact peoples language. Unfortunately many of these symbols are both subject to copy write and are not interoperable. That means end-users can only use one device, and can not use apps or AT from a different company. An open set of references for symbol codes for these symbol sets however, could be interoperable. That means the end user could use an open source symbol set or buy the symbols and use them across different devices or applications. Symbols could still be proprietary but they would also be interoperable.

Contextual Personalization

One important factor in optimizing the personalization of a product or service is to ensure that the personalization is appropriate for the current context of use. For example, settings that will suit the user of a mobile phone in their office or home will not be well suited to that user when they are driving a car. In a home or office, the typical user would probably prefer to send and receive text messages using the keyboard and screen of the mobile phone. However, in the car, voice input and text to speech output would be the most appropriate. In this car context, the profile settings of a typical user might be very similar to those that a blind user would use in all contexts.

Important Terms

Personalization Use Cases

This Section covers use cases that can be addressed by personalization, and references the vocabulary items that help meet the use cases.

Simplification

Requirement: The user must be able to request a way to identify and differentiate between critical features, medium features and less important features. These need to be defined as important from a user perspective in the content. Typically, critical features may be used by many or most users, 90% of the time or more. High important features would be above 60% use. Medium important features would be 20% of users use it 20% of the time . Under 20% usage would be of low importance.

User experience: Based on personalization setting the user can see less options. A sample user experience is available at https://rawgit.com/ayelet-seeman/coga.personalisation/demo/conactUs.html

Relevant properties: simplification

Adding Context

Requirement: Having familiar terms and symbols is key to being able to use the web. However what is familiar for one user may be strange for another requiring them to learn new symbols. If a user agent or script knows the context of links, buttons, and other page elements then symbols and text used can be ones that the user understands. This can include:

For that we need to standardize supportive syntax and terms that can be linked to associated symbols, terms, translations and explanations, for the individual, via an attribute.

Example user experience:, if an author gives to a button a role "send" then, without any work by the author, the button could be automatically rendered with a symbol, term, and/or tooltips that is understandable by a particular user. It could automatically imply F1 help that explains the send function in simple terms. It could be identified with a keyboard short cut that will always be used for send. In addition it could be identified as important and always rendered, or rendered as a large button. This would enable a consistent UI experience across applications and websites.

Relevant properties: action, destination, field

General context

Requirement: One important factor in optimizing the personalization of a product or service is to ensure that the personalization is appropriate for the current context of use as well as what is relevant for the user. For example a female user with a cognitive disability may need less options, and options that are for men are less likely to be relevant for her and may be demoted to bellow the scroll or placed under a "more option" button.

Relevant properties: context

Interoperable symbols

Requirement: We would like to enable interoperable symbol set codes for Non verbal people. Products for people who are non vocal often use symbols to help users communicate. These symbols are in fact peoples language. Unfortunately many of these symbols are both subject to copy write AND not interoperable. That means end-users can only use one device, and can not use apps or AT from a different company. There are open set of symbol codes for these symbol sets, that could be referenced then they can be interoperable. alternatively wordnet nodes could be referenced. If the users symbols are mapped to the same nodes then users agents will be able to load the user understandable symbol. That means the end use could buy the symbols and use them across different devices or applications. They would still be proprietary but they would also be interoperable.

User experience: AAC users will load symbols that they understand in different applications that are made by a different provider.

Relevant properties: concept

Potential parts of a page

Requirement: The following could be extensions for aria landmarks or ePub

User experience: symbols and colors could be used consistently across different content.

Links (such as ePub nav maps) can be automatically generated for people learn via keypoints or examples.

Examples:

Relevant properties: @@

Number free

Requirement: Not everyone can understand numbers. We therefor suggest aui-numberfree for alternative text for people who can not understand the main content

User experience:

A suggested user experience would be: Numerical concepts could be rendered by the user agent slightly different so that the user knows a number free explanation is available. The user can then mouse over the content and a tooltips would give the number free value

Relevant properties: numberfree

Non-literal text and images

Requirement: Not everyone can understand non-literal text and icons such as metaphors, idioms etc. We need a tag that identifies text or images as non literal and allows the author to explain non-literal text and images to users.

User experience:

A suggested user experience would be: Non literal content could be rendered by the user agent slightly differently so that the user knows that this content should not be taken literally and that a literal explanation is available. The user can then mouse over the content and a tooltips would give the literal value.

Relevant properties: literal

Explain and feedback

Requirement:

Some users need additional help. We request an attribute where the author can provide additional information or what just happened.

Relevant properties: feedback, explain

More Help

Requirement: Some users may need additional information or specifically additional help information. We request additional attributes so that an author can indicate the existence of this additional information.

Relevant properties: moreinfo, extrahelp, helptype

Potential Features

The following may not be necessary

Language type support

Requirement: Sometimes you may want to provide a simplified version of a section of a page. For example, you may wish to provide a simplified summary of legal document, but still have a longer version for other users. These alternative versions may not be identical in content but maintain the gist of the original content.

Relevant properties: alternative, easylang

Logs

This proposal is to track the tasks that a user has done, so that they can be reminded of them, and return to or fix a task. The suggested syntax should allow the author to transform some of the information into breadcrumbs via CSS, and the user system can read and present more or less information to the user as per their preferences.

Preferably this should be in the header so that the user agent can build a cross application log of user tasks.

Note that there is no default value.

Relevant properties: log, step, actiontaken, steplocation, status

Log usage examples

<div aui-log="booking trip" aui-step="1" aria-label="buy ticket" aria-hidden="true"
    aui-actiontaken="bought ticket to NY return" steplocation ="uri" />

or

<div aui-log="booking trip" aui-step="1" aui-actiontaken="bought ticket to NY return">
  buy ticket
  <a href="uri">change</a>
</div>

or the step number can be implied by the DOM

<div aui-log="booking trip">
  <div aui-actiontaken="bought ticket to NY return">
    buy ticket
    <a href="uri">change</a>
  </div>
</div>

Alternative syntax for log

Note we are considering supporting an alternative syntax such as:

<log name="booking trip">
  <step status ="done">
    <name>buy ticket</name>
    <actiontaken>bought ticket to NY return</actiontaken>
    <view changepossible="yes">url </view>
  </step>
  <step  status ="done">
    <name>hotel</name>
    <actiontaken>booked Sheraton single room</actiontaken>
    <view changepossible="yes">url </view>
  </step>
  <step  status ="current">
    <name>car rental</name>
    <view current changepossible="yes"/>
  </step>
</log>

Reminders and messages

Requirement: We require an attribute that enables different users to experience different amount of reminders and messages based on personal preferences. Reminders are a wonderful tool for many people with cognitive disabilities. However too many reminders will be annoying or distracting for some other users. Currently people can turn off distractions such as Skype, and Facebook, across different devices, and then may forget to turn them back on.

These semantics allow for different solutions so that users are able to focus without missing important messages. Users need to manage all distractions by forming a cross application and cross device distraction matrix that manages all distractions in one setting. It is based on a matrix for distractions at the operating system , browser or cloud level. People and users can be clustered in terms of importance or groups. For example, the CEO and your child's care giver could both be considered critical contacts. So even if they do not feel the message is urgent they can sometimes disrupt the user anyway. Some family members and important colleagues can be in another group, friends and extended family in a third group, system messages from the compliance system can be a different group again.

Relevant properties: messageimportance, messagefrom, messagecontext, messagetime

Distractions

Requirement: We require an attribute that indicates a distraction so that some users may be able to remove them from content.

Relevant properties: distraction

New Misc.

Triggers: for emotional support. aui-trigger: violent, racism, etc. aui-keyparts of the page: key points, example, note, warning, external (content), advertisements, (some may be in digital publishing) aui-dates - (cancellation, return)

Structure of Properties

Semantic properties have the characteristics described in the following sections.

Related Concepts

Advisory information about features from this or other languages that correspond to this property. While the correspondence may not be exact, it is useful to help understand the intent of the state or property.

Value

Value type of the semantic property. The value may be one of the following types:

true/false
Value representing either true or false, with a default "false" value.
true/false/undefined
Value representing true or false, with a default "undefined" value indicating the state or property is not relevant.
ID reference
Reference to the ID of another element in the same document
ID reference list
A list of one or more ID references.
integer
A numerical value without a fractional component.
number
Any real numerical value.
string
Unconstrained value type.
token
One of a limited set of allowed values.
token list
A list of one or more tokens.
URI
A Uniform Resource Identifier as defined by RFC 3986 [[RFC3986]]. It may reference a separate document, or a content fragment identifier in a separate document, or a content fragment identifier within the same document.

The "undefined" value, when allowed on a state or property, is an explicit indication that the state or property is not set. The value is used on states and properties that support tokens, and the "undefined" value is a string that is one of the allowed tokens. It is also used on some states and properties that accept true/false values, when "undefined" has a different meaning than "false".

These are generic types for states and properties, but do not define specific representation. See State and Property Attribute Processing for details on how these values are expressed and handled in host languages.

List of properties

simplification

The simplification attribute differentiates between critical features and less important features for simplification.

This allows simplified interfaces with less options or interfaces that emphasize critical features. Adaptations can be based on personalization settings.

Example: Simplification Using ARIA
<input aui-simplification="critical" aria-function="submit" value="Submit" type="submit"/>

This was formerly aui-importance. However different people may feel that sections that would be hidden in a simplified version are still very important, such as marketing content or legal terms.)

These semantics aid simplification. But what content is most useful to a user varies from user to user. For example, men may be more interested in mens clothing, and may not be interested in the more frequently use womens clothing option. For that reason we may add context for elements that will help the personalization agent select the most useful content for a given user (see the context attribute). This is also necessary for reminders (see bellow).

It is worth mentioning that a lot of this information is known for personalization of advertisements and content optimization.

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: token
Values:
Value Description
simplest This setting should be used on:
  • Elements that are essential for the key function (from the user perspective) of the page (Example: The send button for an email draft in an email application) or
  • Elements that are sometimes critical to a user being able to use the site, such as "save my work" or "emergency instructions" or
  • Elements that are used by over 90% of a user group (such as parents or teachers) use this element most times they use the content

Typically 3 links or buttons would be considered "simplest"

medium (default) This setting should be used on:
  • Elements that are used frequent but are not essential for the key functioning pf the application. (Example: The delete button for an email draft in an email application) or
  • Elements that are sometimes important to a user being able to use the site, such as settings or
  • Elements that are used by frequently (over 60%) by a user group (such as parents or teachers) use this element most times they use the content
low This setting should be used on elements that are rarely used or only used by advanced users. (Example: The terms and services or the archive button for an email application.)

action

The action attribute provides the context of a button. It is typically used on a button element or element with role="button".

					   

For example: <button aui-action="undo" >Revert</button>

A personalization agent may add a symbol, replace the text with a more familiar term, or give it a specific presentation. Note that there is no default value.

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: token

The following could be supported values of aui-action for buttons:

Values:
Value Description
compose compose new item such as an email. (Implied simplification = "critical".)
next move to the next item in the series. (Implied simplification = "critical".)
delete delete current item, selected control or text
previous move to the previous item in the series. (Implied simplification = "critical".)
toc opens a table of content
submit submits the form data or request to the server. (Implied simplification = "critical".)
undo revert to the state before the user's most recent changes
cancel closes the dialog and discards any changes the user may have made within that dialog. (Implied simplification = "critical".)
reset resets all the controls to their initial values
label add label to the selected item or the item at the current location.
buy buy the selected item or buy the item at the current location. Often involves adding the current item into a shopping cart. (Implied simplification = "critical".)
add add the selected item or the item at the current location to a list
move move the selected item

save save the current content. (Implied simplification = "critical".)
send send a form, email or request. (Implied simplification = "critical".)
close close current dialog. (Implied simplification = "critical".)
more show more information

We may need more work to identify the dirction (up left degree etc) but there may be a way to do that already

print print current page, selection or the item at the current location
received open received folder
sent open sent folder
edit edit current item, selection or the item at the current location
forward forward to current item such as an email
reply reply to current item such as an email. (Implied simplification = "critical".)
upload upload file to the server
open open item. (Implied simplification = "critical".)
new open new item. (Implied simplification= "critical".)
settings open settings and options
mode change the mode or functionality. (Implied simplification= "critical".)
higher increases the level of the relevant setting. (Implied simplification= "critical".)
lower increases the level of the relevant setting. (Implied simplification= "critical".)
profile opens the user's profile page
expand expand or unexpand the current item
refresh manually refresh the current contents of the screen
properties shows the properties of the item
help opens a help function. (Implied simplification= "critical".)
cut removes the selected control, item or text and places it on the Clipboard
copy copies the selected control, item or text onto the Clipboard
color opens a color picker
date opens a date control. (Implied simplification= "critical".)
remove remove an item from a list
right moves a selected item to the right to another column or list
left moves a selected item to the left to another column or list

destination

The destination term categorizes the target of a hyperlink.

A personalization agent or user agent may add additional familiar user interface features to help users understand the link and follow the right one easily. User agents might add a familiar customized icon to the link, or style the link in a customized way, or position the link on the page in a location that the user generally expects to find a link of the particular type.

<a href="home.html" aui-destination="home">our main page</a>

See the destination sample user experience.

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: token
Values:
Value Description
home initial or main page of a website or application
contact opens contact information for content owner or producer
phone phone content owner or producer
email email content owner or producer
sitemap content containing a list of pages in a web site
help a help function, support or instructions
chat Human help or a dialog help function such as a chat bot
about information about the content owner or producer
terms terms and conditions
tools available tools for the current content
services services available from the content provider
products products available from the content provider
comment submit a comment on the current item
language language options
signin sign in to current web site or application
signout sign out current web site or application
register register for the current web site or application
social content provider on social media
post post current item. Item will be visible to other parties.

field

field provides the context of a text input field such as a text box. It is typically used on an input of type text, or element with a responding role.

              

<input type="text" name="fname" aui-field="phone"/>

A personalization agent may add a symbol, replace the text with a more familiar term, or give it a specific presentation. Note that there is no default value.

The user experience may include filling in the field and adding an icon.

aui-field values that would typically be on form controls and would have a user context - for example phone would relate to the user's phone. Note that there is no default value.

Note they can be more then one value for a field, such as aui-field="country postcode"

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: token
Values:
Value Description
name full name
honorific-prefix prefix or title (Mr., Mrs. Dr., etc.)
given-name given or first name
additional-name additional or middle name
additional-name-initial additional or middle name initial
family-name family name, surname, or last name
honorific-suffix suffix (Jr., II, etc.)
nickname nickname
street-address full street address condensed into one line
address-line1 first line of street address
address-line2 second line of street address
address-line3 third line of street address
city locality or city
area administrative area, state, province, or region
postalcode postal or ZIP code
country country name
fax full fax number, including country code
fax-country-code international country code
fax-national national fax number: full number minus country code
fax-area-code area code
fax-local local fax number: full number minus country and area codes
fax-extension fax extension number
email email address
tel full phone number, including country code
tel-country-code international country code
tel-national national phone number: full number minus country code
tel-area-code area code
tel-local local phone number: full number minus country and area codes
tel-extension phone extension number
cc-name full name, as it appears on credit card
cc-number credit card number
cc-exp-month month of expiration of credit card
cc-exp-year year of expiration of credit card
cc-exp date of expiration of credit card
cc-csc credit card security code
language preferred language
bday birthday
bday-year year of birthday
bday-month month of birthday
bday-day day of birthday
topic Topic for the form. Typically selected from a list of reserved words
comment comment section. Typically a free text field
subject form subject. Typically a free text field
answer answer to a section question
org company or organization
organization-title user's position or title within company or organization
sex sex or gender
gender gender identity
url Website URL
photo photo or avatar
section-***** used to group forms together

context

context gives additional contextual information about the content.

context accepts the values of a URI or shortened URI. Note that namespaces are the only additional parsing that maybe required to identify the concept.

These semantics aid simplification. What content is most useful to a user varies from user to user. For example, men may be more interested in mens clothing, and may not be interested in the more frequently use womens clothing option. For that reason adding context for elements that will help the personalization agent select the most useful content for a given user.

Example: Context Using ARIA
<a href="women.html" aui-context="http://schema.org/Female">women</a>

To help this be interoperable without an RDF parser we recommend using the most commonly used ontologies.

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: URI

symbol

symbol identifies the concept for symbols.

symbol accepts the values of a URI or shortened URI. Note that namespaces are the only additional parsing that maybe required to identify the concept.

A personalization agent can then load alternative symbols that the user is familiar with and they do not have to learn new symbols for different applications.

Example: Symbol Using ARIA
<img aui-symbol="http://wordnet-rdf.princeton.edu/wn31/girl-n" href="mygirlsy.bmp"/>

To help this be interoperable without an RDF parser we recommend referencing the most commonly used ontologies and the highest level concept. (For example, reference "girl" and not "young girl" .)

We should have a note of common suggested terms and references. (Maybe with links to http://www.arasaac.org/)

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: URI

numberfree

numberfree provides alternative text for people who prefer content that does not use numerical concepts.

A personalization agent may replace the content with the number free alternative, or it may put the number free alternative in a tooltip or sidebar. The content must still be understandable when a user agent replaces the original content with the number free alternative.

Supported value: String

Note that there is no default value.

Example 1: Numberfree Using ARIA
<span aui-numberfree="almost all">9 out of 10 </span>
			
Example 2: Numberfree Using ARIA
<span aui-numberfree="hat and coat weather">The weather is 9 degrees</span>
Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: string

literal

literal provides alternative text for people who prefer content that does not use non literal text, such as metaphors.

A personalization agent may replace the content with the literal alternative, or it may put the literal alternative in a tooltip.

User agents may also render non-literal text in a different way so that users will be able to identify non literal content. They can then use a mouse over or other technique to receive the alternative.

A user agent must be able to replace the non literal content with the literal alternative without loss of meaning.

Supported value: String

Note that there is no default value.

Example: Literal Using ARIA
It is <span aui-literal="raining hard">raining cats and dogs</span>
Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: string

easylang

easylang provides an alternative text of the content that is easier to read and understand. Note that this only works on small sections of text as the easylang attribute does not support full HTML, such as lists and sections.

A personalization agent may replace the content with the simpler alternative, or it may put the alternative in a tooltip or help panel.

User agents may also render hard text in a different way so that users will be able to identify text that has an alternative provided.

The content must still be understandable when a user agent replaces the original content with the simpler alternative.

Supported values: String

Example: Easylang Using ARIA
<span aui-easylang="some text that is easy to read"> some convoluted obtuse text</span>

Where aui-easylang should use as simple well-known words as possible, and active voicing, literal text, small simple sentences. Acronyms and abbreviations should be avoided, unless they are the common way to refer to an item.

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: string

feedback

This attribute provides immediate feedback that can be shown or spoken when any event is triggered on a control.

User experience: This can be rendered as text at the top of the page and read immediately. Most users will not want this text rendered and spoken. Other users however will need it to know what has just happened.

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: string

explain

This attribute provides any information that helps the user anticipate the functionality, such as letting the user know what behavior will trigger an event. This is most important if the mechanism is not standard.

User experience: This help can be rendered as a tool tip, help link or read when the control or link is read. Most users will not want this text rendered or spoken, but other users however will need it to understand the behavior of the element.

Note that there is no default value.

Examples:

aui-explain="press enter to send the email" 
aui-feedback="your email on birthdays was sent" 

These values will change when the email is sent.

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: string

moreinfo

@@1-line description

Supported values: URI

Note that there is no default value.

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: URI

extrahelp

@@1-line description

Supported values: URI

Note that there is no default value.

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: URI

helptype

@@1-line description

Example:

<button type="button" aui-extrahelp="uri2 uri3" >undo</button>

URI 2 may read:

<div id="uri2"
    aui-helptype="morehelp"
    aui-hidden="true">
  pressing the undo button will erase all your work on this page.
  Use this button with care.
  If you press it by mistake, press control and y at the same time
  and your answers will come back.
</div>

<a href="functiongethelp()"
    aui-helptype="humanhelp"
    aui-hidden="true">
  I want a person to help me
</a>
<div id="uri3"
    aui-extrahelp="glossary"
    aui-hidden="true">
Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: token
Values:
Value Description
automated
dictionary
faqs
glossary
helpform
humanhelp
morehelp
simplified
thesaurus
tooltips
topicsearch

alternative

Would be used on an alternative content as an alternative to more detailed or difficult to understand content. aui-alternative can be used on a span, div, link or image that servers as alternative content to it's direct parent element.

This data model may be too complex, so this property could undergo substantial changes.

Supported values:

  • On text: easylang, explain, more, vocab500, vocab1000, vocab2000, active, literal, numberfree, smallsentences, chunks
  • General: lessoptions. Whitespace, largefont 
  • Images: symbolic , realistic
  • p0, p1, p1, p2, p3 Where p0 are images with true content, p1 is a symbol or illustration that is typically shown with alt="", P2 are extra illustration that most people will not mind such as at the start of a paragraph or option. p3 are for disability centric illustrations that can disturb other people and may be mid sentence. 

Note that there is no default value.

Example:
<div>
  <span aui-alternative="easylang numberfree vocab1000" class="hidden">>
    most people prefer simple text
  </span>
  In studies it was found that only 30% of users prefer long convoluted text
  with obtuse words and lots of numbers,
  with 56% claiming there preferred the simplified text ,
  with the remainder unsure or stated it depends on the context.
</div>
Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: token list
Values:
Value Description
active
chunks
easylang
explain
largefont
lessoptions
literal
more
numberfree
p0
p1
p1
p2
p3
realistic
smallsentences
symbolic
vocab1000
vocab2000
vocab500
whitespace

log

Contains a label or name for the log that reflects the process or task purpose.

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: string

step

Contains the number of the step in the process or task.

This can sometimes be implied via the DOM.

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: integer

actiontaken

Contains a summary of key actions taken during a step of a process.

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: string

steplocation

Contains a link to the location of the step for editing and review. The referenced location should support editing.

An embedded link inside a step can serve the same function as aui-steplocation.

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: URI

status

Describe whether a step in a process is done, pending, current, or not done.

Need a better token for "not done", or is that value actually needed given the presence of prending and current?

Not clear how the true and false values below relate to the done/pending/current/not-done values above.

When actiontaken is not null it implies that aui-status is true.

When actiontaken is null it implies that aui-status is false.

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: token
Values:
Value Description
done @@
pending A step has not yet been completed but is not the current step. It is used actiontaken when has not been used.
current @@
not-done @@
true @@
false @@

messageimportance

@@1-line description

Example:

<div role="alert"
    aui-messageimportance="medium">
  It is your daughter's birthday tomorrow
</div>
Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: token
Values:
Value Description
critical To be critical a message needs to be both urgent and content that the user is very likely to consider important. For example, a system may send a message that it is going to reboot in one minute to install updates.
medium (default) Important messages that needs the user's attention at their convenience. For example, a relatively important chat message.
low A message that does not need time sensitive attention. For example, a typical chat message.

messagefrom

@@1-line description

Supported values: a string value that identifies the sender of the message. If multiple names are used they can be separated by a coma.

Note that there is no default value.

Example:

<div role="alert"
    aui-messageimportance="low"
    aui-messagefrom="lisa seeman, lseeman">
  I posted a new version on GitHub for you to review
</div>
Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: string

messagecontext

@@1-line description

Supported values: a string value that identifies the location that makes this message relevant. Typical values are "home" and "work". If multiple locations are relevant they can be separated by a coma.

Note that there is no default value.

Example:

<div role="alert"
   aui-messageimportance="low"
   aui-messagefrom="lisa seeman, lseeman"
   aui-messagecontext="work">
  I posted a new version on GitHub for you to review
</div>
Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: string

messagetime

@@1-line description

Supported values: 24 hour date time format. DD.MM.YEAR.HOUR.MM - DD.MM.YEAR.HOUR.MM where the second date is an optional exclusive expiry date.

Note that there is no default value.

Example:

<div role="alert"
    aui-messageimportance="medium"
    aui-messagefrom="my calender"
    aui-messagecontext="work"
    aui-messagetime="10.02.2017.00.00-16.02.2017.00.00">
  Renew your driving license this week
</div>
<div role="alert"
    aui-messageimportance="critical"
    aui-messagefrom="my calender"
    aui-messagecontext="work"
    aui-messagetime="16.02.2017.00.00">
  Renew your driving license ASAP
</div>
Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: string

distraction

This attribute should be used on , detracting content, so that people who have challenges keeping focus can have distracting content hidden..

Example:

aui-distraction="moving ad"

Supported values: animations, auto-starting, moving, ad, message, chat , overlay, popup
Auto-changing (logs) third-party, offer ( includes suggestions).

Note that there is no default value.

Note that elements with the aui-distraction attribute should also have a label or accessible name.

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: token list
Values:
Value Description
ad
animations
auto-changing
auto-starting
chat
message
moving
offer
overlay
popup
third-party

User Settings

This section is not yet developed. A draft of user settings is available separately.

Vocabulary Implementations

RDFa

The context based properties should be convertible to RDFa. (see RDFa Primer) and the task force should create this mapping.

Note that a lot of this can be done using RDFa. However it is easy to change the meaning with RDFa and a very basic parser will misinterpret the result. The coga work needs to be usable by as many authors as possible, and not only those who can implement RDF logic.

Further , personalization setting need to be limited, and RDF can give an unlimited number of potential options which will make the system unusable. (This is unless we create restrictions and controls on an ontology uses - such as mapping to know ontologies.)

For example, in the code below the property homepage does not refer to the home page of the site but of the person being references. Beyond declaring the type of data we are dealing with, each typeof creates a new blank node with its own distinct properties.

<div vocab="http://xmlns.com/foaf/0.1/">
<ul>
   <li typeof="Person">
      <a property="homepage" href="http://example.com/bob/">Bob</a>
   </li>
   <li typeof="Person">
      <a property="homepage" href="http://example.com/eve/">Eve</a>
   </li>
   <li typeof="Person">
      <a property="homepage" href="http://example.com/manu/">Manu</a>
   </li>
</ul>
				

We may recommend adding RDFA that describe the role of the item (see RDFa Primer):

<div resource="/alice/posts/jos_barbecue">
	<h2 property="title">Jo's Barbecue</h2>
	<p>Date: <span property="created">2011-09-14</span></p>
	<h3 property="creator">Eve</h3>
	...
</div>
			

WAI-ARIA

Properties in this case can be represented as WAI-ARIA properties by adding the prefix "aria-" to the attribute name, and the property value as the attribute value.

The prefix above is not yet accepted by the ARIA Working Group.

Additional WAI-ARIA roles

Requirement: We may want to add roles for sections a page such as: contact us - for a contact us form 

User experience: symbols and colors could be used consistently across different content.

Nav maps can be automatically generated for people learn via key-points or examples.

Further these sections could be hidden in the normal rendering of a page or rendered the top of page depending on user preferences. The location of these sections can also be changed, based on the user preference, enabling the user to find them easily.

Values:

  • summary
  • keypoints
  • example
  • note
  • warning
  • step
  • external - for external content, such as sponsored or advertising
  • offers - for special offers that are complementary to the main content or task
  • advertisement - advertisement or sponsored content
  • contact us
  • about us

HTML Microdata

Properties in this vocabulary can be used in HTML Microdata [[microdata]]. The property name is uses as the item name, the property value as the item value. Authors SHOULD use the itemtype property to express to the value type defined in this specification.

Acknowledgements placeholder